1. Technical Field
The present invention relates generally to the field of computer architecture and, more specifically, to methods and systems for managing resources among multiple operating system images within a logically partitioned data processing system.
2. Description of the Related Art
Logical partitions, or LPARs, provide the capability to partition a single server into two or more virtual servers, with each LPAR able to run multiple applications or workloads. Each LPAR acts as an independent virtual server, with its own memory, using shared processors and disks—all within a single symmetric multiprocessing (SMP) system. LPARs can be individually managed and customized for performance, allowing a single system to be fully optimized for interactive, e-business, business intelligence or other workloads. Each partition can be set independently, permitting different system names, languages and time zones.
A logical partition consists of CPUs, memory, and I/O slots and their attached devices that are typically a subset of a pool of available resources within a system. LPAR differs from Physical Partitioning (PPAR) in the way resources are grouped to form a partition. Logical partitions do not need to conform to the physical boundaries of the building blocks (collection of resources) used to build the server. Instead of grouping by physical building blocks, LPAR adds more flexibility and freedom to select components from the entire pool of available system resources. This allows better granularity, which maximizes the resource usage on the system and minimizes unnecessary resource reallocation.
A logical partitioning functionality within a data processing system (platform) allows multiple copies of a single operating system (OS) or multiple heterogeneous operating systems to be simultaneously run on the single data processing system platform. Each logical partition runs its own copy of the operating system and is isolated from any activity in other partitions. Software failures do not propagate through the system, and the hardware facilities and microcode provide strong isolation between resources. Many types of errors, even those within shared resources, are isolated inside the partition where they occur.
LPAR works within a single memory coherence domain so it can be used within a simple SMP with no special building block structure. All the operating system images run within the same memory map, but are protected from each other by special address access control mechanisms in the hardware, and special firmware added to support the operating system. Thus, software errors in the control of an OS's allocated resources are prevented from affecting the resources of any other image.
A logical partition, within which an operating system image runs, is assigned a non-overlapping sub-set of the platform's resources. Each image of the OS (or each different OS) directly controls a distinct set of allocable resources within the platform and ensure that the various images cannot control any resources that have not been allocated to them. These platform allocable resources include one or more architecturally distinct processors with their interrupt management area, regions of system memory, and I/O adapter bus slots. The partition's resources are represented by the platform's firmware to the OS image.
A problem with standard LPAR computer systems is that the input/output (I/O) sub-systems are designed with several I/O adapters (IOAs) sharing a single I/O bus. An OS image in a particular partition contains device drivers that issue commands that directly control its own IOA. The system user must attach the I/O resources to the partition in order for the partition to own these resources. In the case of the floppy drive, CD ROM drive and other low read/write rate devices, this methodology makes the use of these devices cumbersome. These devices are not high performance by nature so having a direct path to the device from the OS does not significantly increase performance. It would, therefore, be advantageous to devise a method, system and apparatus that reduces the complexity of attaching and re-attaching an I/O device to different partitions as its resource is needed.